A storage device is a device that has a disk for storing data and a controller for controlling the disk and is intended to provide a high-capacity data storage space to a host or a computer that is connected to the storage device.
When a storage device is constructed from a plurality of disks with a RAID (Redundant Array of Independent (or Inexpensive) Disks) configuration, the I/O processing speed can be increased and high fault tolerance against disk failures can be achieved.
Patent Literature 1 below discloses a storage device having an HDD (Hard Disk Drive) as a storage medium.
Meanwhile, in recent years, flash memory has been gaining increased attention as a new storage medium. Flash memory is characterized by its faster read and write times than those of HDDs. For example, although HDDs have read and write times each on the order of several milliseconds, there has been reported a performance data example of NAND flash memory that has a read time of 25 microsecond and a write time of 300 microsecond.
In addition, flash memory, unlike HDDs, has another characteristic that its physical area to which data has been written once cannot be overwritten. In order to rewrite data in flash memory, it is necessary to once erase the data on a “block” basis. However, flash memory has a limited number of write cycles due to the physical reasons of memory cells for storing information. Further, there has been reported data that flash memory requires an erase time of about 1 ms.
In order to address the aforementioned limitations, flash memory typically employs a method in which the correspondence relationship between the address and the cell location that is shown to a host system is retained, and when data stored in a block is to be updated, the update data is stored into an empty page, in which data is not written, and the original data stored in the block is invalidated. However, as the data is updated repeatedly, the number of empty pages will decrease. As a technique of addressing a shortage of empty pages, a technique called “garbage collection (hereinafter referred to as GC)” has been laid open to the public. Other than the GC, there has also been known a technique called “wear leveling (hereinafter referred to as WL)” which makes equal the number of write operations performed to each cell.